home *** CD-ROM | disk | FTP | other *** search
Text File | 1991-08-28 | 3.3 KB | 227 lines | [TEXT/MPS ] |
- // utilities.c
- //
- // sundry utility functions for CIncludesCode MPW tool
-
- #include "CIncludesCode.h"
- #include <Files.h>
- #include <OSUtils.h>
- #include <StdIO.h>
- #include <StdLib.h>
- #include <String.h>
- #include <Strings.h>
- #include <Memory.h>
-
- void fdisplay(char *s)
- {
- char c;
-
- while (c = *s++)
- {
- if (c <= 32)
- {
- fprintf(stderr,"%d ",c);
- } // if c
- else
- {
- fprintf(stderr,"%c ",c);
- } // else if c
- } // while c
- } // fdisplay()
-
- Boolean equalStringsUncased(char *s1,char *s2)
- {
- char c1,c2;
-
- while (*s1)
- {
- c1 = *s1++;
- c2 = *s2++;
- if (c1 != c2)
- {
- c1 &= 0xDF;
- c2 &= 0xDF;
- if ((c1 < 'A') || (c1 > 'Z') || (c1 != c2))
- {
- return false;
- } // if c1
- } // if c1
- } // while *s1
- return (*s1 == *s2);
- } // equalStringsUncased()
-
- Boolean isString(char *p,char *q)
- // p is pointer to text chars; q is pointer to C string.
- // returns true if chars at p equal chars at q.
-
- {
- for (; *q != '\0'; ++q,++p)
- {
- if (*q != *p)
- {
- return false;
- } // if *q
- } // for
- return true;
- } // isString()
-
- Handle loadDataFile(char *filename)
- {
- short fileid;
- long filesize;
- OSErr error;
- Handle dataHdl = 0;
- Str255 s;
-
- strcpy(s,filename);
- c2pstr(s);
-
- if (!(error = FSOpen(s,0,&fileid)))
- {
- if (!(error = GetEOF(fileid,&filesize)))
- {
- dataHdl = NewHandle(filesize + 1);
- if (dataHdl)
- {
- error = FSRead(fileid,&filesize,*dataHdl);
- } // if dataHdl
- else
- {
- error = -1;
- } // else if dataHdl
- } // if !error
- (void) FSClose(fileid);
- } // if !error
-
- if (error)
- {
- errorExit("Error loading source file!");
- } // if error
-
- *(*dataHdl + filesize) = '\n';
- return dataHdl;
- } // loadDataFile()
-
-
- void copyNames(char *dest,char *src)
- // extracts C filename from C pathname
-
- {
- char *s = strrchr(src,(int) ':');
- char *d = dest;
-
- ++s;
- while (*s)
- {
- *d++ = *s++;
- } // while *d
- *d = '\0';
- } // copyNames()
-
-
- void errorExit(char *s)
- {
- fprintf(stderr,"%s\n",s);
- SysBeep(1);
- exit(2);
- } // errorExit()
-
-
- void checkMemory(void)
- {
- OSErr err = MemError();
-
- if (err)
- {
- fprintf(stderr,"Memory Operation Failed: %d\n",err);
- SysBeep(1);
- exit(2);
- } // if err
- } // checkMemory()
-
-
- short getShort(char *p)
- {
- union shortUnion n;
-
- n.cc[0] = *p++;
- n.cc[1] = *p;
- return (n.vv);
- } // getShort()
-
-
- long getLong(char *p)
- {
- union longUnion n;
-
- n.cc[0] = *p++;
- n.cc[1] = *p++;
- n.cc[2] = *p++;
- n.cc[3] = *p;
- return (n.vvvv);
- } //getLong()
-
-
-
- void putShort(char *dest,short value)
- {
- union shortUnion n;
-
- n.vv = value;
- *dest++ = n.cc[0];
- *dest = n.cc[1];
- } // putShort()
-
-
- void putLong(char *dest,long value)
- {
- union longUnion n;
-
- n.vvvv = value;
- *dest++ = n.cc[0];
- *dest++ = n.cc[1];
- *dest++ = n.cc[2];
- *dest = n.cc[3];
- } // putLong()
-
- short dictionaryIndex(char ch)
- {
- if (ch == '_')
- {
- return 0;
- } // if ch
- else
- {
- return ((ch & 0xDF) - '@');
- } // else if ch
- } // dictionaryIndex()
-
- Boolean validStart(char c)
- {
- return ((c == '_') | ((c >= 'A') && (c <= 'Z')) | ((c >= 'a') && (c <= 'z')));
- } // validStart()
-
- Boolean validChar(char c)
- {
- return (((c >= '0') && (c <= '9')) | validStart(c));
- } // validChar()
-
- int validate(char *s)
- {
- if ((strlen(s) > 63) || !validStart(*s))
- {
- return 2;
- } // if strlen()
- else
- {
- for (++s; *s != '\0'; ++s)
- {
- if (!validChar(*s))
- {
- return 2;
- } // if !validChar
- } // for s
- } // else if strlen()
- return 0;
- } // validate()
-
- // end of utilities.c